The present invention relates to a session processing module for a server in a data communications network.
The characteristics of communication between a client and a server communicating across a network can be divided into several categories including: level of authentication of parties, if any, level of data compression, if any, and level of data encryption, if any. The nature of these characteristics can be termed a quality of service between client and server.
Secure Sockets Layer (SSL) is a security protocol designed and specified by Netscape(trademark) for providing data security layered between application protocols (such as HTTP, Telnet, NNTP, or FTP) and TCP/IP. Secure Sockets Layer (SSL), which is based on public key cryptography provides data encryption, server authentication, message integrity, and optional client authentication for a TCP/IP connection.
Standard Java enabled Web Servers provide for Secure Sockets Layer (SSL) to encrypt data flows between a Web server and a compatible Web browser. However, there are a number of problems with SSL, stemming from the fact that there can only be one level of encryption for all types of data:
data is decrypted, in the clear, within the server and browser;
data transmitted between the browser and web server is either encrypted according to SSL or clear there is no intermediate protocol; and
data is not compressed.
It can be seen therefore that SSL does not provide for closely specifying a quality of service and as such creates great difficulty for web application developers. Take, for example, a bank who wish to make financial services available through the Internet. The bank may have a back-end server on which client account information is stored. This server would normally be trusted and its information secure. The bank on the other hand may not necessarily trust its web server, and as such, SSL, which decrypts client information as it arrives at the web server, will not be satisfactory. Even if the security provided by SSL were satisfactory, then the bank may wish to define different ways of handling different information. The bank may wish to compress certain information sent from the server to a client applet, to improve bandwidth use where a lot of data is to be sent to an applet, whereas certain types of information may not be worth compressing, because downloading the software to decompress the data at the client would be too great an overhead. Again, SSL does not allow a developer to determine closely the quality of service required for such communication.
The present invention seeks to mitigate the problems of SSL and other prior art by providing a session processing module for a server adapted to communicate across a packet switched network with a plurality of clients, said processing module comprising: means for allocating a session identifier in response to a first input stream of a session between a client and said server; means for negotiating communication characteristics for said session; and means for instantiating, according to said communication characteristics for said session, routines for processing subsequent session input streams containing request data and routines for generating session output streams containing response data.
The invention further provides a computer program product and a method for processing communication sessions between a server and a plurality of clients.